/* Ejercicio 10954 */
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <queue>

using namespace std;
// Esta clase la necesitamos para pasarle al heap como queremos que sea la prioridad, en este caso, van a tener prioridad los menores.
// La clase mayor me sirve para que cuando ingrese un elemento al heap, mientras sea mayor que el primero no va a tener prioridad sobre el mismo.
class Mayor{
public:
    int operator()(unsigned long long int &a, unsigned long long int &b)
    {
     return ( a > b );
       
    }
};


// Funcion Principal
int main (){
  
  int input;
  unsigned long long int  temp;
  unsigned long long int s1;
  unsigned long long int s2;
  unsigned long long int res;
  unsigned long long int value;
  priority_queue<unsigned long long int, vector<unsigned long long int>, Mayor> heap;

  //Captura de la entrada
  cin>>input;
  
  while (input != 0){
     
      
      for(int i = 0; i < input; i++){
          cin >> value;
          heap.push(value); 
      }	  
      if (input == 1){
          cout << 0 << endl;
      }
      else{
          res = 0;
          temp = 0;
          while (heap.size() > 1){
		s1 = heap.top();
		heap.pop();
                s2 = heap.top();
		heap.pop();
                temp = s1 + s2;
                heap.push(temp);
                res += temp;
        }
            heap.pop();
            cout << res << endl;
      }
      cin >> input;  
  }
  
  return 0;
}
